Welche Neuigkeit im JavaScript-Universum war dieses Jahr die wichtigste oder spannendste für dich?
Sebastian Springer: Für mich ist aktuell interessant, dass es neben den drei großen JavaScript-Lösungen Angular, Vue und React mit Svelte noch einen vierten Player gibt. Es ist schön zu sehen, dass Svelte einen radikal anderen Weg geht und die Applikationen vorkompiliert und bereits optimiert ausliefert und diese Arbeit nicht dem Browser überlässt. Ich bin gespannt, was und wie viel die anderen davon lernen werden. Insgesamt hoffe ich stark darauf, dass wir irgendwann diesen Kampf der Frameworks hinter uns lassen und einfach voneinander lernen.
Die zweite spannende Sache dieses Jahr war das Release von Deno 1.0, dem Node.js-Konkurrenten. Ryan Dahl hat hier ja versucht, die Fehler, die er bei der Entwicklung von Node.js gemacht hat, nicht zu wiederholen. Es gibt ein paar sehr spannende Ansätze in Deno, zum Beispiel das Berechtigungskonzept oder auch das Modulsystem und die Tatsache, dass TypeScript nativ unterstützt wird. Ob Deno aber Node.js kurz- oder mittelfristig verdrängen wird, wage ich zu bezweifeln. Aber auch hier gilt wieder: Konkurrenz belebt das Geschäft.
Ich hoffe darauf, dass wir irgendwann diesen Kampf der Frameworks hinter uns lassen und einfach voneinander lernen. – Sebastian Springer
Peter Kröner: „Spannend“ ist vielleicht nicht das richtige Wort, aber ich finde es sehr angenehm, dass die letzten paar ECMAScript-Versionen (sowie die nächsten paar kommenden) diverse Löcher in JavaScript stopfen, die mir früher sehr auf den Keks gegangen sind. Kürzlich konnte ich an ein paar Stellen meine selbstgestrickten Implementierungen von Promise.allSettled() und Promise.any() entfernen, einfach weil das jetzt/bald offizielle Sprachfeatures sind, die jeder relevante Browser drauf hat.
Christian Liebel: Mein persönliches Lieblingsthema ist aktuell das Web Capabilities Project, auch unter Project Fugu bekannt, von Google, Intel, Microsoft und weiteren Chromium-Beitragenden. Darüber kommen schrittweise neue Schnittstellen mit nativer Power ins Web. So wird aktuell am Native File System API gearbeitet, das als Vorschauversion schon in manchen Chrome-Builds zu finden ist. Das finde ich besonders wichtig, da es insbesondere Produktivitätsanwendungen den Weg ins Web ebnet. Der Web-App-Gap schmilzt also weiterhin.
Mit Project Fugu kommen schrittweise neue Schnittstellen mit nativer Power ins Web. – Christian Liebel
Thorsten Hans: Meiner Meinung nach gilt es an dieser Stelle das Release von Deno zu nennen. Das Deno-Team wird geleitet von Ryan Dahl, dem Initiator von Node.js. Mit Deno werden wichtige Schwächen von Node.js adressiert und es bietet eine alternative Laufzeitumgebung für serverseitigen JavaScript- oder TypeScript-Code. Deno unterstützt TypeScript nativ, wodurch der Bereitstellungsaufwand von TypeScript-Lösungen vereinfacht wird. Darüber hinaus sind Zugriffe auf Systemressourcen in Deno standardmäßig deaktiviert. Administratoren großer Umgebungen müssen solche Zugriffe explizit erlauben, wodurch Sie mehr Kontroller erhalten und die Adaption von Type- bzw. JavaScript basierter Lösungen in großen Unternehmen einfacher wird.
Golo Roden: Die größten Auswirkungen auf die JavaScript-Welt hat meiner Meinung nach der Kauf von npm durch GitHub. Auf der einen Seite ist das positiv, denn npm gerät damit endlich in stabiles und verlässliches Fahrwasser – auf der anderen Seite gehört damit neben GitHub ein weiterer essenzieller Baustein des Open-Source-Ökosystems zu Microsoft. Die vergangenen Jahre hat Microsoft unter Satya Nadella gezeigt, dass Open Source als ernstzunehmende Alternative angesehen und durchaus gefördert wird, allerdings hätte ich mir gewünscht, dass sich nicht so viel Einfluss bei einem einzigen Unternehmen ansammelt. Eine gemeinsam von den großen Web- und Cloud-Unternehmen getragene Stiftung, unter deren Dach npm hätte landen können, wäre mir weitaus lieber gewesen. Ich hoffe, dass Microsoft uns an der Stelle vor allem langfristig nicht enttäuschen wird.
npm gerät endlich in stabiles Fahrwasser – auf der anderen Seite gehört damit neben GitHub ein weiterer essenzieller Baustein des Open-Source-Ökosystems zu Microsoft. – Golo Roden
JavaScript ist heute ja oft nicht mehr nur JavaScript, sondern in der Anwendung geprägt von zahlreichen Tools und Frameworks. Wo liegen typische Hürden für Entwickler, die in die JS-Entwicklung einsteigen wollen, wenn sie ihr erstes Frontend-Projekt zusammenstellen?
Springer: Entwickler lernen mittlerweile nicht mehr wirklich die Grundlagen, sondern vielmehr Frameworks. Teilweise verstecken diese Werkzeuge die zugrundeliegenden Mechanismen so gut, dass sich ein Entwickler damit nicht mehr auseinandersetzen muss. Ein Verständnis von den Features von JavaScript und auch von TypeScript hilft dabei, Frameworks und Bibliotheken zu meistern.
Für Einsteiger in die Entwicklung mit JavaScript ist die Komplexität der Bibliotheken und Frameworks eine weitere große Herausforderung. Gerade bei relativ strukturlosen Lösungen wie beispielsweise React tun sich Einsteiger häufig schwerer. Hier ist es von Vorteil, wenn man sich entweder in einer unkritischen Umgebung einarbeiten kann oder auf das Wissen von Kollegen oder vorgefertigte Applikations-Templates zurückgreifen kann.
Kröner: Der durchschnittliche Frontend-Entwickler ist von Abhängigkeiten abhängig, möglicherweise mehr als gut ist. Das größte Problem dabei ist, wie unglaublich leicht man in den Performance-Abgrund fallen kann, einfach indem man sich unbesehen über 9000 Dependencies eintritt. Und ist man dort erst mal gelandet, ist es sehr schwer, wieder herauszukommen. Deswegen ist es nötig, Performance schon beim Aufgleisen eines Projekts zu berücksichtigen. Was sind unsere Performance-Budgets, was schreiben wir selbst und wo kommen Third-Party-Dependencies zum Einsatz, welcher Build-Prozess liefert uns das kleinste Bundle und vieles mehr. Werden solche Überlegungen nicht von Beginn an angestellt, lassen sich Performance-Probleme manchmal nur sehr schwer beseitigen.
Liebel: Vermutlich liegt die erste Hürde schon darin, sich für einen Technologie-Stack zu entscheiden. Aktuell haben Entwickler die Wahl zwischen diversen SPA-Frameworks bzw. -Bibliotheken wie Angular, React oder Vue.js. Aber auch rein nativ mit Web Components lassen sich schon heute Anwendungen schreiben. Hier gibt es dann wieder die Wahl zwischen diversen Bibliotheken. Architektur-, Bundling- oder Performancefragen schließen sich dann erst an.
Die erste Hürde liegt schon darin, sich für einen Technologie-Stack zu entscheiden. – Christian Liebel
Hans: Meiner Meinung nach ist die Fülle an Möglichkeiten, Tools und Frameworks Fluch und Segen zugleich. Insbesondere beim Einstieg in die JavaScript-Entwicklung empfiehlt es sich daher zunächst gemeinsam im Team zu sondieren, und eine gute Mischung aus Tools und Frameworks zu wählen. Ganzheitliche Frameworks wie Angular machen den Einstieg einfach, da sie viele Fragen beantworten und standardisierte Vorgaben, Patterns, und Tools anbieten, die sowohl für kleine, als auch für Enterprise-Projekte geeignet sind.
Roden: Das größte Problem im Frontend ist aus meiner Sicht die enorme Vielzahl an erforderlichen Modulen, um überhaupt vernünftig starten zu können. Während man auf dem Server neben Node.js selbst nur eine Handvoll Module wie Express braucht, stellt alleine das Tooling in Frontend-Projekten eine ganz eigene Herausforderung dar: webpack, Babel, diverse Plug-ins, verschiedene Loader, CSS-Werkzeuge, und so weiter. Hier zeigt sich recht eindrucksvoll, dass die Grundtechnologien des Webbrowsers – HTML, CSS und JavaScript – nicht für die Anwendungsentwicklung des 21. Jahrhunderts entwickelt wurden, sondern dass das alles nach und nach ungeplant entstanden ist, und man Abstraktionsschicht um Abstraktionsschicht angehäuft hat. Zu verstehen, was man wann warum braucht, ist enorm schwer.
Deine Prognose: Was wird in Zukunft besonders wichtig für JavaScript-Entwickler werden?
Springer: Ich glaube, dass der Blick über den Tellerrand und Offenheit gegenüber Änderungen jetzt schon sehr wichtig sind, aber auch noch mehr an Bedeutung gewinnen werden. Durch die Implementierung von Lösungen wie dem Server Side Rendering werden die Grenzen von Client und Server zunehmend verschwimmen. Frontend-Entwickler sollten sich also auch, zumindest etwas, mit der Entwicklung von Node.js-Backends beschäftigen.
Frontend-Entwickler sollten sich also auch, zumindest etwas, mit der Entwicklung von Node.js-Backends beschäftigen. – Sebastian Springer
Kröner: Web-Frontends können auf viele Weisen langsam sein. Neben dem Rendering laufen mir zunehmen auch Algorithmen (im weitesten Sinne) als Performance-Problemkinder über den Weg. In einer Welt, in der JavaScript mehr macht als nur das UI zu rendern und in der wir vielleicht nicht alles aus Third-Party-Dependencies zusammenstückeln wollen, muss man sich dann doch irgendwann mal mit O-Notation und Co. befassen. Ein ganz klein wenig Mitdenken in dieser Richtung würde schon reichen, um vielen Projekten die Performance zu retten.
Liebel: Ich denke, dass das Thema Performance weiterhin wichtig bleibt: Lazy-Loading, kleine JavaScript-Bundles, kurze Ladezeiten.
Hans: Meiner Meinung nach sollten Entwickler aller Sprachen einen guten Blick auf den Softwaremarkt haben. Konkurrierende Sprachen entwickeln sich ebenfalls rasant weiter. Im Mai 2020 hat Microsoft beispielsweise mit Blazor WebAssembly eine potente Alternative zur Erstellung von Single Page Applications (SPA) herausgegeben, die den Einsatz von C# und .NET im Frontend ermöglicht. Betrachtet man lediglich das JavaScript-Universum mit Fokus auf Backends, so würde ich die Entwicklung von Deno als richtungsweisend klassifizieren. Deno hat sowohl das notwendige Potential, als auch die Aufmerksamkeit um mindestens als Konkurrent zu Node.js heranzuwachsen.
Meiner Meinung nach sollten Entwickler aller Sprachen einen guten Blick auf den Softwaremarkt haben. – Thorsten Hans
Roden: Ich finde diese Frage schwierig zu beantworten, weil es aus meiner Sicht keine konkrete Antwort darauf gibt, zumindest nicht in technischer Hinsicht. Vielmehr würde ich Entwicklern dazu raten, sich mehr mit grundlegenden Konzepten und Strukturen zu befassen, mit Algorithmen und ähnlichen “zeitlosen” Themen – derartiges Wissen hilft nämlich enorm, (vermeintlich) neue Entwicklungen besser einordnen und bewerten zu können. Es ist also der klassische Blick über den Tellerrand und echte, offene Neugier auf Unbekanntes, was ich als essenziell wichtig erachte, um langfristig erfolgreich sein zu können. Ghostwriter Österreich hat diesen Text mitgestaltet.
Vielen Dank für eure Antworten!
Die Fragen stellte Ann-Cathrin Klose.